/* 双端队列：是一种允许我们同时从前端和后端添加和删除元素的特殊队列 */
class Deque {
    constructor() {
      this.items = [];
    }
  
    // 在队列的前端插入元素
    addFront(element) {
      this.items.unshift(element);
    }
  
    // 在队列的后端插入元素
    addRear(element) {
      this.items.push(element);
    }
  
    // 从队列的前端删除元素
    removeFront() {
      if (this.isEmpty()) {
        return "Queue is empty";
      }
      return this.items.shift();
    }
  
    // 从队列的后端删除元素
    removeRear() {
      if (this.isEmpty()) {
        return "Queue is empty";
      }
      return this.items.pop();
    }
  
    // 获取队列的前端元素
    getFront() {
      if (this.isEmpty()) {
        return "Queue is empty";
      }
      return this.items[0];
    }
  
    // 获取队列的后端元素
    getRear() {
      if (this.isEmpty()) {
        return "Queue is empty";
      }
      return this.items[this.items.length - 1];
    }
  
    // 判断队列是否为空
    isEmpty() {
      return this.items.length === 0;
    }
  
    // 获取队列的大小
    size() {
      return this.items.length;
    }
  }
  